// pages/index/detailsS/index.js
import Dialog from '../../../../miniprogram_npm/@vant/weapp/dialog/dialog';
import Toast from '../../../../miniprogram_npm/@vant/weapp/toast/toast';
import {
	clearAlertRefresh
} from '../../../../utils/hooks';

const $api = require('../../../../request/api').API;
const app = getApp();
Page({
	/**
	 * 页面的初始数据
	 */
	data: {
		flowEndDate: '',
		activeDate: '',
		id: '',
		// 住户id
		houseId: '',
		// 呼叫器id
		beeperId: '',
		// 设备id
		equipId: '',
		equipMac: '',
		//--------------------------------------------------------------
		wifiName: '',
		wifiPwd: '',
		linkName: '',
		phone: '',
		address: '',
		provinceName: '',
		cityName: '',
		areaName: '',
		streetName: '',
		villageName: '',
		callingName: '',
		callingStatus: 0,
		callingErrorStatus: 0,
		equipNickName: '',
		installArea: '',
		equipCode: '',
		money: 0,
		// 标签列表
		tagList: [{
			beeperTagId: '1',
			tagName: '帅气'
		}],
		createDate: '',
		//-----------------------------------------------------------------
		// 设置wifi弹框
		showWifiOverlay: false,
		// 设置新增标签弹框
		showTagOverlay: false,
		// 点击标签分类显示
		selectClassShow: false,
		selectClassName: '点击选择分类',
		selectClassId: '',
		tagClass: [],
		// 是否为主用户
		mainFlag: 0,
		// 修改昵称或者安装区域弹框
		showUpdateData: false,
		showType: 1, //1代表昵称修改 2代表安装区域修改
		tempData: '' //临时数据，用来修改昵称和安装区域
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad(options) {
		let id = options.beeperId;
		if (id != undefined) {
			this.setData({
				id: id
			});
		}
	},

	// 请求数据
	getData(id) {
		let params = {
			id: this.data.id
		};
		$api
			.getBeeperS(params)
			.then(res => {
				console.log('getBeeperY', res.data.data);
				if (res.data.status == 0) {
					var data = res.data.data;
					this.setData({
						houseId: data.houseId,
						beeperId: data.beeperId,
						createDate: data.createDate,
						activeDate: data.activeDate,
						equipId: data.equipId,
						linkName: data.linkName,
						phone: data.phone,
						address: data.address == '待补充' ? '' : data.address,
						provinceName: data.provinceName,
						cityName: data.cityName,
						areaName: data.areaName,
						streetName: data.streetName,
						villageName: data.villageName,
						callingName: data.equipName,
						callingStatus: data.equipState,
						callingErrorStatus: data.errorState,
						money: data.balance,
						tagList: data.tags,
						mainFlag: data.mainFlag,
						equipNickName: data.equipNickName,
						installArea: data.installArea,
						equipCode: data.equipCode,
						equipMac: data.equipMac,
						flowEndDate: data.flowEndDate == null ? '' : data.flowEndDate
					});
					if (this.data.address == '') {
						this.setData({
							showWifiOverlay: true
						});
					}
				}
			})
			.catch(err => {
				console.log(err);
			});
	},
	// 打开wifi设置弹框
	openSetWifi() {
		this.setData({
			showWifiOverlay: true,
			linkName: this.data.contact,
			phone: this.data.phone
		});
	},
	// 关闭wifi设置弹框
	closeSetWifi() {
		if (this.data.address == '') {
			// 不填信息退出，直接解绑并回到首页
			this.jiebang();
			setTimeout(() => {
				wx.switchTab({
					url: '/pages/equipment/index'
				});
			}, 500);
		} else {
			this.setData({
				showWifiOverlay: false
			});
		}
	},
	isAlarmChange() {
		Dialog.confirm({
				title: '提示',
				showCancelButton: true,
				cancelButtonText: '取消',
				confirmButtonText: '确定',
				closeOnClickOverlay: true,
				message: '是否测试报警？'
			})
			.then(() => {
				$api.testAlarm({
					equipId: this.data.equipId
				}).then(res => {
					if (res.data.status == 0) {
						Toast.success("操作成功")
					} else {
						Toast.fail("操作失败")
					}
				}).catch(()=>{
					Toast.fail("操作失败")
				})
			})
			.catch((err) => {

			});
	},

	onSelectClass(event) {
		console.log(event.detail);
		this.setData({
			selectClassName: event.detail.name,
			selectClassId: event.detail.id
		});
	},
	// 设置wifi
	setWIFI() {
		let params = {
			houseId: this.data.houseId,
			linkName: this.data.linkName,
			phone: this.data.phone,
			address: this.data.address,
			beeperId: this.data.beeperId
		};
		if (params.linkName == '') {
			Toast.fail('联系人不能为空');
			return;
		}
		if (params.phone == '') {
			Toast.fail('联系电话不能为空');
			return;
		}
		if (params.address == '') {
			Toast.fail('门牌号不能为空');
			return;
		}
		$api
			.setHouseWifi(params)
			.then(res => {
				console.log('设置wifi回调', res);
				if (res.data.status == 0) {
					wx.showToast({
						title: '设置地址信息成功'
					});
					this.setData({
						showWifiOverlay: false
					});
					this.getData(this.data.id);
				}
			})
			.catch(err => {
				console.log(err);
			});
	},

	// 跳转用户列表
	toWarningRecord() {
		console.log('equipId', this.data.equipId);
		wx.navigateTo({
			url: '../warningRecord/index?id=' + this.data.equipId
		});
	},
	// 解绑设备
	jiebang() {
		Dialog.confirm({
			title: '提示',
			message: '确认解绑当前设备吗？'
		}).then(() => {
			let params = {
				id: this.data.equipId
			};
			$api
				.unbindBinding(params)
				.then(res => {
					console.log('解绑设备', res);
					if (res.data.status == 0) {
						wx.showToast({
							title: '解绑成功！'
						});
						setTimeout(() => {
							wx.switchTab({
								url: '/pages/equipment/index'
							});
						}, 1000);
					}
				})
				.catch(err => {
					console.log('解绑设备', err);
				});
		}).catch(() => {

		});
	},
	// 解除警报
	jieAlarm() {
		Dialog.confirm({
			title: '提示',
			showCancelButton: true,
			cancelButtonText: '误触发',
			confirmButtonText: '已处理',
			closeOnClickOverlay: true,
			message: '确定解除警报吗？'
		}).then(() => {
			this.handleAlarmLiftedProcess()
		}).catch(() => {
			this.handleFalseAlarmRelease()
		});
	},
	/**
	 * 解除警报 - 已处理
	 */
	handleAlarmLiftedProcess() {
		$api.equipAllClear({
			equipId: this.data.equipId,
			cancelReason: 2
		}).then(() => {
			wx.showToast({
				title: '解除成功！'
			});
			clearAlertRefresh(this.data.id, this);
		});
	},

	/**
	 * 解除警报 - 误触
	 */
	handleFalseAlarmRelease() {
		$api.equipAllClear({
			equipId: this.data.equipId,
			cancelReason: 1
		}).then(() => {
			wx.showToast({
				title: '解除成功！'
			});
			clearAlertRefresh(this.data.id, this);
		});
	},
	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady() {},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow() {
		this.getData(this.data.id);
	},
	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide() {},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload() {},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh() {},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom() {},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage() {},
	// 输入框绑定值
	wifiNameInput(e) {
		let value = e.detail.value;
		this.setData({
			wifiName: value
		});
	},
	wifiPwdInput(e) {
		let value = e.detail.value;
		this.setData({
			wifiPwd: value
		});
	},
	contactInput(e) {
		let value = e.detail.value;
		this.setData({
			linkName: value
		});
	},
	phoneInput(e) {
		let value = e.detail.value;
		this.setData({
			phone: value
		});
	},
	addressInput(e) {
		let value = e.detail.value;
		this.setData({
			address: value
		});
	},
	tagNameInput(e) {
		let value = e.detail.value;
		this.setData({
			addTagName: value
		});
	},

	// 打开修改昵称弹框
	openUpdateData(e) {
		let type = e.currentTarget.dataset.type;
		this.setData({
			showUpdateData: true,
			showType: type,
			tempData: type == 1 ? this.data.equipNickName : this.data.installArea
		});
	},
	// 关闭修改昵称弹框
	closeUpdateData() {
		this.setData({
			showUpdateData: false
		});
	},
	// 输入绑定
	dataInput(e) {
		let value = e.detail.value;
		this.setData({
			tempData: value
		});
	},
	// 修改昵称
	UpdateData() {
		if (!this.data.tempData && this.data.showType == 1) {
			Toast('请输入昵称');
			return;
		} else if (!this.data.tempData && this.data.showType == 2) {
			Toast('请输入安装区域');
			return;
		}
		let params = {
			id: this.data.equipId,
			name: this.data.tempData,
			state: this.data.showType
		};
		$api
			.UpdataName(params)
			.then(res => {
				if (res.data.status == 0) {
					if (this.data.showType == 1) {
						wx.showToast({
							title: '设置昵称成功'
						});
					} else {
						wx.showToast({
							title: '设置成功'
						});
					}

					this.setData({
						showUpdateData: false
					});
					this.getData(this.data.id);
				}
			})
			.catch(err => {
				console.log(err);
			});
	}
});